

package com.zdkj.subway.rca.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 电子账单
 *
 * @author cooze
 * @date 2020-10-24 21:52:04
 */
@Data
@TableName("sw_ck_electronic_receipt")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "电子账单")
public class SwCkElectronicReceipt extends Model<SwCkElectronicReceipt> {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @TableId
    @ApiModelProperty(value = "唯一标识")
    private Integer id;
    /**
     * 线路编码
     */
    @ApiModelProperty(value = "线路编码")
    private String lineCode;

    @ApiModelProperty(value = "线路名称")
    @TableField(exist = false)
    private String lineName;
    /**
     * 车站编码
     */
    @ApiModelProperty(value = "车站编码")
    private String stationCode;

    @ApiModelProperty(value = "车站名称")
    @TableField(exist = false)
    private String stationName;
    /**
     * 票种CODE
     */
    @ApiModelProperty(value = "票种CODE")
    private String ticketType;
    /**
     * 票种名称 （只是营销车票）
     */
    @ApiModelProperty(value = "票种名称 （只是营销车票）")
    private String ticketName;
    /**
     * 票价 （元还是分）
     */
    @ApiModelProperty(value = "票价 （元还是分）")
    private BigDecimal unitTicketPrice;
    /**
     * 售卖张数 初始录入值，原始值
     */
    @ApiModelProperty(value = "售卖张数 初始录入值，原始值")
    private Integer saleNumber;
    /**
     * 售卖金额(分) 初始录入值，原始值
     */
    @ApiModelProperty(value = "售卖金额(分) 初始录入值，原始值")
    private BigDecimal saleAmount;
    /**
     * 电子回执单类型 1：转账 2：团购 3：平台 取票方式为线下核销的【0】，赋值3 平台 取票方式为转账的【1】，赋值 1 转账 从团购查询的，赋值2 团购
     */
    @ApiModelProperty(value = "电子回执单类型 1：转账 2：团购 3：平台 取票方式为线下核销的【0】，赋值3 平台 取票方式为转账的【1】，赋值 1 转账 从团购查询的，赋值2 团购")
    private String returnOrderType;
    /**
     * 回执单号/订单号 电子回执单类型为1或者3时，从线下取票明细表的TAKE_TICKET_NUM赋值 回执单类型为2时，从团购表的TAKE_TICKET_NUM获取回执单号
     */
    @ApiModelProperty(value = "回执单号/订单号 电子回执单类型为1或者3时，从线下取票明细表的TAKE_TICKET_NUM赋值 回执单类型为2时，从团购表的TAKE_TICKET_NUM获取回执单号")
    private String returnNumber;
    /**
     * 时间 从线上取票和团购中查找售卖日期TAKE_TICKET_TIME 和 SELL_TIME字段
     */
    @ApiModelProperty(value = "时间 从线上取票和团购中查找售卖日期TAKE_TICKET_TIME 和 SELL_TIME字段")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate bookkeepingTime;
    /**
     * 支付方式 支付方式-10：现金支付 12：支付宝支付 13：微信支付 14：银行转账 团购时直接带过来（平台数据编辑时可以更新）
     */
    @ApiModelProperty(value = "支付方式 支付方式-10：现金支付 12：支付宝支付 13：微信支付 14：银行转账 团购时直接带过来（平台数据编辑时可以更新）")
    private String paymentType;

    @ApiModelProperty(value = "支付方式: 现金支付 、支付宝支付 、微信支付 、银行转账")
    @TableField(exist = false)
    private String paymentTypeName;
    /**
     * 折扣后金额（分） 折扣后金额（分）（团购时直接带过来） 对应DISCOUNT_AMOUNT字段
     */
    @ApiModelProperty(value = "折扣后金额（分） 折扣后金额（分）（团购时直接带过来） 对应DISCOUNT_AMOUNT字段")
    private BigDecimal discountAmount;
    /**
     * 银行电子回执单金额（分） 银行电子回执单金额（分） 编辑时赋值 转账和团购编辑此值
     */
    @ApiModelProperty(value = "银行电子回执单金额（分） 银行电子回执单金额（分） 编辑时赋值 转账和团购编辑此值")
    private BigDecimal bankElecOrderAmount;
    /**
     * 银行账户金额（分） 编辑时赋值、转账、团购和平台编辑此值
     */
    @ApiModelProperty(value = "银行账户金额（分） 编辑时赋值、转账、团购和平台编辑此值")
    private BigDecimal bankAccountBalance;
    /**
     * 银行电子回执单与售卖金额差异（分） 编辑时赋值 转账和团购和平台编辑此值 (平台借用此字段 银行账户金额-扣除手续费金额）
     */
    @ApiModelProperty(value = "银行电子回执单与售卖金额差异（分） 编辑时赋值 转账和团购和平台编辑此值 (平台借用此字段 银行账户金额-扣除手续费金额）")
    private BigDecimal diffElecAmount;
    /**
     * 银行电子回执单与银行账户金额差异（分） 编辑时赋值 转账和团购编辑此值
     */
    @ApiModelProperty(value = "银行电子回执单与银行账户金额差异（分） 编辑时赋值 转账和团购编辑此值")
    private BigDecimal diffAccountAmount;

    /**
     * 邮寄费（分） 平台编辑时赋值
     */
    @ApiModelProperty(value = "手续费（分） 平台编辑时赋值")
    private BigDecimal mailingCost;
    /**
     * 手续费（分） 平台编辑时赋值
     */
    @ApiModelProperty(value = "手续费（分） 平台编辑时赋值")
    private BigDecimal handServiceMoney;
    /**
     * 扣除手续费后金额（分） 平台编辑时赋值 售卖金额-手续费
     */
    @ApiModelProperty(value = "扣除手续费后金额（分） 平台编辑时赋值 扣除手续费金额=售卖金额+邮寄费-手续费")
    private BigDecimal deductHandServiceMoney;
    /**
     * 数据来源 默认为1  1：原始录入 2：手工录入 3：批量导入
     */
    @ApiModelProperty(value = "数据来源 默认为1  1：原始录入 2：手工录入 3：批量导入")
    private String dataType;
    /**
     * 操作状态 0：未操作  1：已操作
     */
    @ApiModelProperty(value="操作状态 0：未操作  1：已操作")
    private String executeStatus;
    /**
     * 确认状态 默认0  0：未确认 1：已确认
     */
    @ApiModelProperty(value = "确认状态 默认0  0：未确认 1：已确认")
    private String confirmStatus;


    @TableField(exist = false)
    private String confirmStatusName;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Integer creatorId;
    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称")
    private String creatorName;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
    /**
     * 删除标志 删除标志--删除:1 未删除0
     */
    @ApiModelProperty(value = "删除标志 删除标志--删除:1 未删除0")
    private String delFlag;
}
